package demo;

// 模拟出龟兔赛跑：乌龟先跑到终点
public class TortoiseHareRace implements Runnable{
    // 跑道
    private final int length = 100;

    // 判断胜利者
    public void run() {
        for (int i = 1; i <= length; i++) {
            // 判断比赛是否结束，结束了，停止程序，返回胜利者
            if (gameOver(i)){
                System.out.println(Thread.currentThread().getName()+"跑到终点了！！！");
                break;
            }
            // 模拟兔子半路睡觉
            if (Thread.currentThread().getName().equals("兔子") && i%10 == 0){
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println(Thread.currentThread().getName()+":跑了"+i+"m");
        }
    }

    private boolean gameOver(int i) {
        return i == 100;
    }

    // 两个线程操作的不是一个共享资源，只判断谁先走完100米，谁就赢，相当于每个都有自己的赛道
    public static void main(String[] args) {
        new Thread(new TortoiseHareRace(),"兔子").start();
        new Thread(new TortoiseHareRace(),"乌龟").start();
    }
}
